{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "k均值聚类"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {},
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "from sklearn.cluster import KMeans\n",
        "from sklearn.datasets import make_blobs\n",
        "from sklearn.metrics.pairwise import pairwise_distances_argmin\n",
        "\n",
        "n_samples = 2000\n",
        "n_components = 6\n",
        "\n",
        "# 生成随机数据\n",
        "X, y_true = make_blobs(n_samples=n_samples,\n",
        "                       centers=n_components,\n",
        "                       cluster_std=1.00) \n",
        "X = X[:, ::-1]\n",
        "\n",
        "colors = ['#dc322f', '#859900', '#268bd2', '#d33682']\n",
        "\n",
        "k_means = KMeans(init='k-means++', n_clusters=len(colors), n_init=10)\n",
        "k_means.fit(X)\n",
        "k_means_cluster_centers = k_means.cluster_centers_\n",
        "k_means_labels = pairwise_distances_argmin(X, k_means_cluster_centers)\n",
        "\n",
        "plt.figure(1)\n",
        "for k, col in enumerate(colors):\n",
        "    my_members = k_means_labels == k\n",
        "    cluster_center = k_means_cluster_centers[k]\n",
        "    plt.scatter(X[my_members, 0], X[my_members, 1], s=1, c=col, marker='.')\n",
        "    plt.scatter(cluster_center[0], cluster_center[1], c=col, marker='d')\n",
        "\n",
        "plt.savefig('clustering.svg', transparent=True)\n",
        "plt.show()\n"
      ]
    }
  ],
  "metadata": {
    "interpreter": {
      "hash": "e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a"
    },
    "kernelspec": {
      "display_name": "Python 3.9.7 64-bit",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.9.7"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}
